package net.mingsoft.config;


import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class WeixinConfiguration {
    @Value("${wx.mp.appId}")
    private String appId;

    @Value("${wx.mp.secret}")
    private String secret;

    @Value("${wx.mp.token}")
    private String token;

    @Value("${wx.mp.aesKey}")
    private String aesKey;

    @Bean
    public WxMpDefaultConfigImpl wxMpDefaultConfig() {
        WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();
        config.setAppId(appId); // 设置微信公众号的appid
        config.setSecret(secret); // 设置微信公众号的appsecret
        config.setToken(token); // 设置token，用于消息签名校验（重要安全步骤）
        config.setAesKey(aesKey); // 如果选择加密模式，则需要设置EncodingAESKey
        return config;
    }

    @Bean
    public WxMpService wxMpService(WxMpDefaultConfigImpl config) {
        WxMpService service = new WxMpServiceImpl();
        service.setWxMpConfigStorage(config); // 设置配置的存储方式（这里是默认实现）
        return service;
    }
}
